﻿using System;
using System.Collections.Generic;
using System.Text;

namespace FlexminAPI
{
	public delegate void HostUpdateDelegate(IHost sender, HostEventArgs e);

	/// <summary>
	/// Состояния удаленного компьютера
	/// </summary>
	public enum ComputerState
	{
		Off,	            //Выключен
		On,		            //Влючен, но служба не запущена
		NotAutentificated,  //Включен и запущена служба, но пароль не верен 
		Ready	            //Включен и запущена служба
	}

	public interface IHost
	{
		string HostAddress
		{
			get;
			set;
		}

		string Password
		{
			get;
			set;
		}

		ComputerState State
		{
			get;
		}

		ICollection<PluginInfo> GetPlugins();

		void Refresh();

		void ShutDown();

		event HostUpdateDelegate StateChanged;
	}
}
